#ifndef METADATA_H_
#define METADATA_H_

/// @brief 消息数据元
class Metadata
{
public:
    /// @brief 构造函数
    Metadata(const char *data_header, int data_header_size, const char *data, int data_size);
    virtual ~Metadata();
    /// @brief 设置ttl声明周期
    void set_ttl(int ttl);
    /// @brief 读取ttl
    int get_ttl();
    /// @brief ttl声明周期减一
    void Decrement();
    /// @brief 获取数据头部指针
    char *GetDataHeader() const;
    /// @brief 头部数据大小
    int GetDataHeaderSize() const;
    /// @brief 获取数据体指针
    char *GetData() const;
    /// @brief 数据体大小
    int GetDataSize() const;

private:
    int ttl_ = 0;
    char *header_buf_ = nullptr;
    int header_buf_len_ = 0;
    char *msg_buf_ = nullptr;
    int msg_buf_len_ = 0;
};

#endif